package com.whnk.attendance.service;

import java.io.IOException;
import java.util.List;
import com.whnk.attendance.domain.MonthIncomeStatis;
import com.whnk.attendance.vo.*;

import javax.servlet.http.HttpServletResponse;

/**
 * 每月统计收入Service接口
 * 
 * @author whnk
 * @date 2021-11-17
 */
public interface IMonthIncomeStatisService 
{
    /**
     * 查询每月统计收入
     * 
     * @param incomeId 每月统计收入主键
     * @return 每月统计收入
     */
    public MonthIncomeStatis selectMonthIncomeStatisByIncomeId(Integer incomeId);

    /**
     * 查询每月统计收入列表
     * 
     * @param monthIncomeStatis 每月统计收入
     * @return 每月统计收入集合
     */
    public List<MonthIncomeStatis> selectMonthIncomeStatisList(MonthIncomeStatis monthIncomeStatis);

    /**
     * 新增每月统计收入
     * 
     * @param monthIncomeStatis 每月统计收入
     * @return 结果
     */
    public int insertMonthIncomeStatis(MonthIncomeStatis monthIncomeStatis);

    /**
     * 修改每月统计收入
     * 
     * @param monthIncomeStatis 每月统计收入
     * @return 结果
     */
    public int updateMonthIncomeStatis(MonthIncomeStatis monthIncomeStatis);

    /**
     * 批量删除每月统计收入
     * 
     * @param incomeIds 需要删除的每月统计收入主键集合
     * @return 结果
     */
    public int deleteMonthIncomeStatisByIncomeIds(Integer[] incomeIds);

    /**
     * 删除每月统计收入信息
     * 
     * @param incomeId 每月统计收入主键
     * @return 结果
     */
    public int deleteMonthIncomeStatisByIncomeId(Integer incomeId);

    //查询每月收入统计
    public MonthIncomeStatisJsonVo selectMonthIncomeStatisVoList(String month);

    //批处理每月收入统计
    public void batchComputer(String month);

    //导出每月收入统计
    public void exportExcel(HttpServletResponse response, MonthIncomeStatisJsonVo monthIncomeStatisJsonVo) throws IOException;

    //查询每月统计（工作量收入）
    public MonthWorkIncomeJsonVo queryWorkloadIncome(MonthWorkIncomeQuery monthWorkIncomeQuery);

    //导出每月统计（工作量收入）
    public void exportWorkloadIncomeExcel(HttpServletResponse response, MonthWorkIncomeJsonVo monthWorkIncomeJsonVo) throws IOException;

    //查询每月统计（人力成本预估）
    public MonthHumenCostJsonVo queryHumenCostForecast(MonthHumenCostQuery monthHumenCostQuery);

    //导出每月统计（人力成本预估）
    public void exportHumenCostForecastExcel(HttpServletResponse response, MonthHumenCostJsonVo monthHumenCostJsonVo) throws IOException;
}
